Method and apparatus for acquisition and tracking of orthogonal frequency division multiplexing symbol timing, carrier frequency offset and phase noise

ABSTRACT

A method for updating channel estimates in an orthogonal frequency division multiplexing receiver of a wireless local area network includes generating channel estimates for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values. The method includes generating a complex number by summing a product of frequency domain signals and the channel estimates for each of the subcarrier index values and dividing the sum by a sum of a squared absolute value of the channel estimate for each of the subcarrier index values. The method includes multiplying the complex number by the channel estimates to generate updated channel estimates.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation U.S. patent application Ser. No. 12/393,547 (now U.S. Pat. No. 8,300,743), filed Feb. 26, 2009, which is a divisional of U.S. patent application Ser. No. 11/801,032, filed May 8, 2007 (now U.S. Pat. No. 7,532,693), which is a divisional of U.S. patent application Ser. No. 10/067,556 (now U.S. Pat. No. 7,218,691), filed Feb. 4, 2002, which application claims the benefit of U.S. Provisional Application No. 60/273,487, filed Mar. 5, 2001. The entire disclosures of the above applications are incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to receivers, and more particularly to receivers that measure carrier frequency offset, symbol timing and/or phase noise of an orthogonal frequency division multiplexing signal.

BACKGROUND OF THE INVENTION

A wireless local area network (WLAN) uses radio frequency (RF) signals to transmit and receive data between electronic devices. WLANs provide all of the features and benefits of traditional hard-wired LANs without requiring cable connections between the devices. In WLANs, transmitters and receivers (often implemented as wireless network interface cards) provide a wireless interface between a client and a wireless access point to create a transparent connection between the client and the network. Alternately, the WLAN provides a wireless interface directly between two devices.

The access point is the wireless equivalent of a hub. The access point is typically connected to the WLAN backbone through a standard Ethernet cable and communicates with the wireless devices using an antenna. The wireless access point maintains the connections to clients that are located in a coverage area of the access point. The wireless access point also typically handles security by granting or denying access.

IEEE section 802.11(a), which is hereby incorporated by reference, standardized WLANs that operate at approximately 5 GHz with data speeds up to 54 Mbps. A low band operates at frequencies from 5.15 to 5.25 GHz with a maximum power output of 50 mW. A middle band operates at frequencies from 5.25 to 5.35 GHz with a maximum power output of 250 mW. A high band operates at frequencies from 5.75 to 5.85 GHz with a maximum power output of 1000 mW.

Because of the high power output, wireless devices operating in the high band will tend to include building-to-building and outdoor applications. The low and middle bands are more suitable for in-building applications. IEEE section 802.11(a) employs orthogonal frequency division multiplexing (OFDM) instead of direct sequence spread spectrum (DSSS) that is employed by IEEE section 802.11(b). OFDM provides higher data rates and reduces transmission echo and distortion that are caused by multipath propagation and radio frequency interference (RFI).

Referring now to FIG. 1, data packets include a preamble 10 that is specified by IEEE section 802.11(a). The preamble 10 includes a plurality of short training symbols 12 (S0, . . . , S9). The short training symbols 12 are followed by a guard interval 14 (Guard) and two long training symbols 16-1 and 16-2 (L0, L1). The duration of the short training symbol 12 is T_(short), the duration of the guard interval 14 is T_(G12), the duration of the long training symbols 16 is T_(long), the duration of the guard interval 15 for data symbols is T_(GI), and the duration of data symbols 18 is T_(data). Guard intervals 15 and data symbols 18 alternate after the long training symbols 16. According to IEEE section 802.11(a), T_(short)=0.8 μs, T_(GI)=0.8 μs, T_(GI2)=1.6 μs, T_(long)=3.2 μs, and T_(data)=4 μs.

One important task of the OFDM receiver is the estimation of symbol timing and carrier frequency offset. Symbol timing is needed to determine the samples of each OFDM symbol that correspond to the guard interval and the samples that are used for fast Fourier transform (FFT) processing. Compensation of the carrier frequency offset is also needed to maximize signal amplitude and minimize inter-carrier interference (ICI).

Conventional symbol timing circuits correlate two halves of a single OFDM training symbol whose duration is equal to the duration of the data symbols. For example, see the symbol timing circuit disclosed in T. Schmidl and D. C. Cox, “Robust Frequency and Timing Synchronization for OFDM,” IEEE Trans. Commun., vol. 45, no. 12, (December 1999), pp. 1613-1621, which is hereby incorporated by reference. The conventional symbol timing circuit exhibits a plateau when there is no intersymbol interference (ISI). The duration of the plateau is the duration of the guard interval that is not affected by ISI. The plateau in the conventional symbol timing circuit corresponds to the range of acceptable times for the start of the frame. For example, the center of the plateau is a desirable estimate of the symbol timing. Since only one training symbol is employed, the conventional symbol timing circuit does not allow time for possible switching of antennas and corresponding automatic gain control (AGC) settling during packet detection.

SUMMARY OF THE INVENTION

A system and method according to the invention estimates carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network. Short training symbols of a preamble of a data packet are sampled to generate a received signal. Sign bits of real and imaginary components of the received signal are quantized.

In other features, the sign bits of at least two adjacent short training symbols are used to generate a correlation signal. A filtered sum of an absolute value of a real component of the correlation signal and an absolute value of an imaginary component of the correlation signal are generated.

In still other features, a local maximum value of the filtered sum is identified during the short training symbols. The local maximum value is identified by updating and storing the filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum.

In still other features, the local maximum value of the filtered sum is multiplied by a threshold value to identify a right edge of a plateau. A right time index value corresponding to the right edge is identified. Symbol timing of long training symbols is calculated from the right time index value.

In still other features, a maximum value of the filtered sum is identified during the short training symbols. The maximum value is identified by updating and storing the filtered sums and by comparing at least one filtered sum to a prior filtered sum and to a subsequent filtered sum. A time index value corresponding to the maximum value is identified. A correlation signal value corresponding to the time index value is identified. An imaginary component of the correlation signal value corresponding to the time index value is calculated. A real component of the correlation signal value corresponding to the time index value is calculated. The imaginary component is divided by the real component to generate a quotient. An arctangent of the quotient is calculated to generate a coarse carrier frequency offset estimate.

In other features of the invention, a system and method estimates fine carrier frequency offset in an orthogonal frequency division multiplexing receiver of a wireless local area network. A symbol timing estimate is generated that identifies a start time of first and second long training symbols of a preamble of a data packet. The first and second long training symbols of the preamble are used to generate a received signal. The first and second long training symbols are correlated to generate a correlation signal. A fine carrier frequency offset is calculated from the correlation signal.

In yet other features, the step of calculating includes calculating imaginary and real components of the correlation signal. The imaginary component is divided by the real component to generate a quotient. An arctangent of the quotient is calculated to generate the fine carrier frequency offset estimate.

In other features of the invention, a system and method updates channel estimates in an orthogonal frequency division multiplexing receiver of a wireless local area network. The channel estimates are generated for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values. A complex number is generated by summing a product of frequency domain signals and the channel estimates for each of the subcarrier index values and dividing the sum by a sum of a squared absolute value of the channel estimate for each of the subcarrier index values. The complex number is multiplied by the channel estimates to generate said updated channel estimates.

In still other features of the invention, a system and method adapt a carrier frequency offset estimate in an orthogonal frequency division multiplexing receiver of a wireless local area network. Channel estimates are generated for an orthogonal frequency division multiplexing subcarrier as a function of subcarrier index values. A complex number is generated by summing a product of frequency domain signals and the channel estimates for each of the subcarrier index values. The sum is divided by a sum of a squared absolute value of the channel estimate for each of the subcarrier index values. An imaginary component of the complex number is calculated.

In yet other features, the imaginary component is multiplied by an adaptation parameter to generate a product. The product is added to a carrier frequency offset estimate to produce an adapted carrier frequency offset estimate.

Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:

FIG. 1 illustrates a preamble of a packet transmitted by an orthogonal frequency division multiplexing receiver according to the prior art;

FIG. 2 is a functional block diagram of an OFDM transmitter according to the present invention;

FIG. 3 is a functional block diagram of an OFDM receiver according to the present invention;

FIG. 4 is a simplified functional block diagram of the OFDM receiver of FIG. 3;

FIG. 5 is a graph illustrating M_(n) as a function of a time interval n;

FIG. 6 is an exemplary functional block diagram for calculating M_(n) and P_(n);

FIG. 7 is a flowchart illustrating steps for calculating symbol timing, carrier frequency offset and phase noise;

FIG. 8 is an exemplary functional block diagram for calculating updated channel estimates and an adapted carrier frequency estimate;

FIG. 9 is a flowchart illustrating steps for calculating the updated channel estimates; and

FIG. 10 is a flowchart illustrating steps for calculating the adapted carrier frequency estimate.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses.

Referring now to FIG. 2, an OFDM transmitter 30 is shown. The OFDM transmitter 30 includes a data scrambler 32 that receives input bits and scrambles the bits to prevent long strings of 1's and 0's. An output of the data scrambler 32 is input to a convolutional encoder 34 that adds redundant bits. For example, for each input bit the convolutional encoder 34 may generate two output bits in a rate ½ convolutional coder. Skilled artisans can appreciate that other code rates may be employed. An output of the convolutional encoder 34 is input to an interleaver and symbol mapper 36.

An output of the interleaver and symbol mapper 36 is input to a serial to parallel (S/P) converter 38. Outputs of the S/P converter 38 are input to an inverse fast Fourier transform (FFT) circuit 40. Outputs of the inverse FFT circuit 40 are input to a parallel to serial (P/S) converter 42. An output of the P/S converter 42 is input to a cyclic prefix adder 44 that adds guard interval bits. An output of the cyclic prefix adder 44 is input to a waveform shaper 46. An output of the waveform shaper 46 is input to a digital to analog (D/A) converter 48. An output of the D/A converter 48 is input to a radio frequency (R/F) amplifier 50 that is connected to an antenna 52. In a preferred embodiment, the OFDM transmitter 30 complies with IEEE section 802.11(a).

Referring now to FIG. 3, an OFDM receiver 60 receives the RF signals that are generated by the OFDM transmitter 30. The receiver 60 includes antennas 62-1 and 62-2. A switch 64 selects one of the antennas 62 based upon the strength of the RF signal detected by the antenna 62. An amplifier 66 is connected to an output of the switch 64. An analog to digital (A/D) converter 68 is connected to an output of the amplifier 66. An automatic gain control (AGC), antenna diversity and packet detection circuit 70 is connected to an output of the A/D converter 68. When the gain of the AGC decreases, a packet is detected. A symbol timing and carrier frequency offset circuit 74 according to the present invention is connected to an output of the circuit 70. The symbol timing and carrier frequency offset circuit 74 identifies a carrier frequency offset ω_(Δ), a starting time n_(g) of a guard interval, and phase noise as will be described more fully below. The circuit 74 typically multiples the samples by e^(−jω)Δ^(n) where n is a sample time index.

A cyclic prefix remover 76 is connected to an output of the symbol timing and carrier frequency offset circuit 74. A S/P converter 78 is connected to an output of the cyclic prefix remover 76. A FFT circuit 80 is connected to an output of the S/P converter 78. A P/S converter 82 is connected to an output of the FFT circuit 80. A demap and deinterleave circuit 84 is connected to an output of the P/S converter 82.

A channel estimator 86 that estimates multipath is connected to an output of the symbol timing and carrier frequency offset circuit 74. A frequency equalizer (FEQ) 90 is connected to an output of the channel estimator 86. An output of the FEQ 90 is input to the demap and deinterleave circuit 84. An output of the demap and deinterleave circuit 84 is input to a sample recovery clock 94 and to a Viterbi decoder 96. An output of the sample recovery clock 94 is input to the A/D converter 68. An output of the Viterbi decoder 96 is input to a descrambler 98.

Referring now to FIG. 4, a simplified functional block diagram of FIG. 3 is shown and includes a radio frequency (RF) amplifier 100 that amplifies the received RF signal. An output of the amplifier 100 is input to a multiplier 102 having another input connected to a local oscillator (LO) 104. An output of the multiplier 102 is filtered by a filter 108 and input to an analog to digital (A/D) converter 110 having a sampling rate of 1/T_(s). The A/D converter 110 generates samples r_(n). A typical value for 1/T_(s) is 20 MHz, although other sampling frequencies may be used. During the initial periods of the short training symbol 12, the circuit 70 brings the signal within a dynamic range of the OFDM receiver 60. Antenna selection for receive diversity is also performed.

After packet detection and AGC settling, the following quantities are computed for estimation of OFDM symbol timing:

q_(n) = sgn[(r_(n))] + j sgn[(r_(n))] $P_{n} = {{\sum\limits_{m = 1}^{L}{q_{n + m - {2L}}^{*}q_{n + m - L}M_{n}}} = {{\alpha_{s}M_{n - 1}} + {\left( {1 - \alpha_{s}} \right)\left( {{{\left( P_{n} \right)}} + {{\left( P_{n} \right)}}} \right)}}}$ Where L=T_(short)/T_(s) is the number of samples in one short training symbol,

is a real component of an argument, and

is an imaginary component of the argument. A typical value for L is L=16, although other values may be used. q_(n) contains sign bits of real and imaginary components of the received signal r_(n). Quantization simplifies the hardware processing for symbol timing acquisition. P_(n) represents a correlation between two adjacent short training symbols of q_(n). M_(n) represents a filtered version of |

(P_(n))|+|

(P_(n))|. The filter is preferably a single pole filter with a pole α_(s). A typical value of α_(s) is α_(s)=1−3/32, although other values may be used.

Referring now to FIG. 5, a plot of M_(n) for a multipath channel having a delay spread of 50 ns is shown. M_(n) has a plateau at 120 that results from the periodicity of the channel output due to the repetition of the short training symbols. The duration of the plateau depends on the number of periods of the short training symbol that remain after antenna selection and AGC settling. Therefore, a center of the plateau is not the best symbol timing estimate. A falling edge of the plateau indicates that no more short training symbols are present and that M_(n) includes samples from the guard interval 14 that precedes the long training symbols 16. Therefore, the falling edge of the plateau provides an estimate of the symbol timing.

After AGC settling, P_(n) and M_(n) are calculated. A left edge n_(l) of the plateau 120 is defined by M_(n)>τ₁A. Typical values for τ₁ and A are τ_(l)=0.7 and A=32/(T_(s)·20 MHz). A maximum value of M_(n) is updated and stored as M_(n,max) as time progresses. The complex number P_(n) corresponding to M_(n,max) is denoted by P_(n,max), which is also updated and stored as time progresses. A local maximum value M_(n,localmax), is set equal to M_(n−1) if the following conditions are met: M_(n−1)≧M_(n−2) and M_(n−1)>M_(n). The local maximum value M_(n,localmax) is updated and stored as time progresses.

A time index n_(g) is set to n−1 if the following conditions are met: M_(n)<τ₂ M_(n,localmax) and M_(n−1)≧τ₂ M_(n,localmax). The index n_(g) is used to determine the symbol timing. A typical value for τ₂ is τ₂=0.9. To determine a right edge n_(r) of the plateau 120, M_(n) must stay below τ₁M_(n,max) for at least B consecutive samples. A typical value for B is B=8/(T_(s)·20 MHz). Once n_(r) is determined, the coarse frequency offset ω_(Δ) is determined by: ω_(Δ)=tan⁻¹[

(P _(n,max))/

(P _(n,max))]/(L) A coarse frequency correction e^(−jω)Δ^(n) is applied to the received signal. The symbol timing is then estimated by n_(g)′=n_(g)−n_(Δ). A typical value for n_(Δ) is n_(Δ)=32.

Referring now to FIGS. 6 and 7, an exemplary implementation of the coarse frequency and symbol timing circuit 70 is shown. Typical parameter values include L=32, τ₁=0.7, A=64, τ₂=0.7, B=15, n_(Δ)=25, T_(s)=40 MHz, and α_(s)=1−3/32. A low pass filter (LPF) 150 is connected to a sign-bit quantizer 152. The sign-bit quantizer 152 is connected to a buffer 154 and a multiplier 156. An L-1 output of the buffer 154 is connected to a conjugator 158 and a multiplier 160. A 2L-1 output of the buffer 154 is connected to a conjugator 162, which has an output connected to the multiplier 160. An output of the multiplier 160 is connected to an inverting input of an adder 164. An output of the multiplier 156 is connected to a non-inverting input of the adder 164. An output of the adder 164 is input to an adder 170. An output of the adder 170 is equal to P_(n) and is connected to a delay element 172 that is fed back to an input of the adder 170. The output of the adder 170 is also input to a metric calculator 174.

An output of the metric calculator 174 is connected to a multiplier 176. Another input of the multiplier is connected to a signal equal to 1−α_(s). An output of the multiplier is input to an adder 180. An output of the adder 180 is equal to M_(n) and is connected to a delay element 182, which has an output that is connected to a multiplier 184. The multiplier 184 has another input connected to α_(s). An output of the multiplier 184 is connected to an input of the adder 180.

Referring now to FIG. 7, steps performed by the coarse frequency circuit and symbol timing circuit 74 is shown generally at 200. Control begins in step 202. In step 204, M_(nmax), M_(nlocalmax), n_(l), n_(r), n_(s), n_(g), n_(max), and ctr are initialized. In step 206, control determines whether n_(l)=0 and M_(n)>τ₁A. If true, control sets n_(l)=n in step 208 and continues with step 210. If false, control determines whether M_(n)>M_(nmax). If true, control continues with step 212 where control sets M_(nmax)=M_(n) and nmax=n and then continues with step 214. If false, control continues with step 214 where control determines whether both M_(n−1)>M_(n−2) and M_(n−1)>M_(n).

If true, control sets M_(nlocalmax)=M_(n−1) and then continues with step 216. If false, control determines whether M_(n)<τ₂M_(nlocalmax) and M_(n−1)≧τ₂ M_(nlocalmax) in step 218. If true, control sets n_(g)=n−1 in step 220 and continues with step 224. If false, control determines whether n_(l)>0 and M_(n−1)>τ₁M_(nmax) in step 224. If true, control sets ctr=0 in step 226 and continues with step 230. If false, control determines whether n_(l)>0 in step 232. If true, control sets ctr=ctr+1 in step 234 and continues with step 230. In step 230, control determines whether ctr=B or n=10L-1. If false, control sets n=n+1 in step 236 and returns to step 206. If true, control sets n_(r)=n−B in step 238. In step 240, control calculates ω_(Δ)=tan⁻¹[Im(P_(nmax))/Re(P_(nmax))]/(L) and ρ=(1−ω_(Δ)/ω_(carrier)). In step 242, control estimates a start of long training symbol using n_(g)′=n_(g)−n_(Δ).

IEEE section 802.11(a) specifies that the transmit carrier frequency and sampling clock frequency are derived from the same reference oscillator. The normalized carrier frequency offset and the sampling frequency offset are approximately equal. Since carrier frequency acquisition is usually easier than sampling period acquisition, sampling clock recovery is achieved using the estimate of the carrier frequency offset ω_(Δ).

The coarse frequency estimate ω_(Δ) is used to correct all subsequent received samples. The coarse frequency estimate ω_(Δ) is refined during the long training symbols specified in IEEE section 802.11(a). r_(0,n) and r_(1,n) (n=0, . . . , N−1) are the received samples that are associated with the long training symbols 16-1 and 16-2 (or L0 and L1), respectively. The value N is the number of samples contained within each long training symbol 16. A typical value for N is N=64 (for 1/T_(s)=20 MHz) (where L=16 and n_(Δ)=32). The estimate of fine frequency offset ω_(Δ,fine) is obtained by: ω_(Δ,fine)=tan⁻¹[ℑ(C _(L))/

(C _(L))] where

$C_{L} = {\sum\limits_{n = 1}^{N - 1}{r_{0,n}^{*}r_{1,n}}}$ The sampling clock is also updated accordingly.

The residual frequency offset and phase noise are tracked during the data portion of the OFDM packet. Ĥ_(k) are channel estimates for the OFDM subcarriers as a function of the subcarrier index k. The channel estimates Ĥ_(k) are multiplied by a complex number Ĉ_(ML) to compensate for common amplitude and phase error due to the residual frequency offsets and phase noise. P_(k), kεK, are received frequency domain signals on the pilot tones after the known BPSK modulation is removed, where K={−21, −7, 7, 21}. The pilot tones are used to derive a maximum likelihood estimate of Ĉ_(ML):

${\hat{C}}_{ML} = {\frac{\sum\limits_{k \in K}{{\hat{H}}_{k}^{*}P_{k}}}{\sum\limits_{k \in K}{{\hat{H}}_{k}}^{2}}}$ The new channel estimates are then {tilde over (H)}_(k)=Ĉ_(ML)Ĥ_(k). These updated channel estimates are used in the frequency equalizer (FEQ) for data detection.

The carrier frequency estimate ω_(Δ) is adapted by:

ω_(Δ)^(l) = ω_(Δ)^(l − 1) + β(Ĉ_(ML)) where β is an adaptation parameter and the subscript l represents values during the l-th OPDM data symbol. A typical value of β is β=1/1024. The sampling clock frequency is also adapted accordingly.

Since the guard interval 14 of an OFDM data symbol is longer than the channel impulse response, an additional tolerance factor is provided in the symbol timing estimate. In order to obtain a symbol timing estimate within an acceptable range, a modified symbol timing estimate n_(g)′ is generated. The modified symbol timing estimate n_(g)′ is equal to n_(g)−n_(Δ) where n_(Δ). A typical value for n_(Δ) is n_(Δ)=32 when L=16.

Referring now to FIG. 8, an exemplary circuit 250 for calculating the updated channel estimates and the adapted carrier frequency estimate ω_(Δ) is shown. The circuit includes multipliers 256-1, 256-2, . . . , 256-n that multiply Ĥ*_(k) and P_(k), for kεK. Absolute value circuits 260-1, 260-2, . . . 260-n calculate an absolute value of Ĥ_(k). Outputs of the absolute value circuit 260 are squared by multipliers 264-1, 264-2, . . . , 264-n. Outputs of the multipliers 256 are input to an adder 266. Outputs of the multipliers 264 are input to an adder 270. An output of the adder 266 is input to a numerator input of a divider 272. An output of the adder 270 is input to a denominator input of the divider 272. An output of the divider 272 Ĉ_(ML) is input to a multiplier 274. Another input of the multiplier 274 is connected to Ĥ_(k). An output of the multiplier 274 generates {tilde over (H)}_(k).

An output of the divider 272 is input to an imaginary component circuit 280 that outputs an imaginary component of Ĉ_(ML). An output of the imaginary component circuit 280 is input to a multiplier 284. Another input of the multiplier is connected to the adaptation parameter β. An output of the multiplier 284 is input to an adder 286. Another input of the adder is connected to ω_(Δ) ^(l−1). An output of the adder 286 generates ω_(Δ) ^(l), which is the adapted carrier frequency estimate.

Referring now to FIG. 9, steps for calculating new channel estimates are shown generally at 300. In step 302, control begins. In step 304, channel estimates Ĥ_(k) are obtained. In step 306, frequency domain signals P_(k) on the pilot tones are obtained after BPSK modulation is removed. In step 308, the conjugates of the channel estimates Ĥk are multiplied by the frequency domain signals P_(k) and summed for each value of K. In step 310, Ĉ_(ML) is computed by dividing the summed product generated in step 308 and divided by the sum for each value of k of the squared absolute values of Ĥ_(k). In step 312, the channel estimates Ĥ_(k) are multiplied by Ĉ_(ML) to obtain new channel estimates {tilde over (H)}_(k). Control ends in step 314.

Referring now to FIG. 10, steps for generating the adapted carrier frequency estimate are shown generally at 320. Control begins in step 322. In step 324, the imaginary component of Ĉ_(ML) is generated. In step 326, the imaginary component of Ĉ_(ML) is multiplied by the adaptation parameter β. In step 328, the product of step 326 is added to ω_(Δ) ^(l−1) (the l−1th carrier frequency offset estimate) to generate ω_(Δ) ^(l). Control ends in step 330.

In an alternate method for calculating coarse frequency according to the present invention, after packet detection and AGC settling, the following quantities are computed for estimation of OFDM symbol timing:

$P_{n} = {\sum\limits_{m = 1}^{L}{r_{n + m - {2\; L}}^{*}r_{n + m - L}}}$ $R_{n} = {\sum\limits_{m = 1}^{L}{r_{n + m - L}}^{2}}$ M_(n) = P_(n)²/R_(n)² Where L=T_(short)/T_(s) is the number of samples in one short training symbol. A typical value for L=16, although other values may be used. P_(n) represents a correlation between two adjacent short training symbols. R_(n) represents an average received power in a short training symbol. M_(n) represents a normalized correlation between two adjacent short training symbols.

M_(n) exhibits the plateau at 120 due to the repetition of the short training symbol. In other words, M_(n) is a maximum value as a sample window moves across the short training symbols 12 after packet detection and AGC settling. P_(n) correlates received signals for two adjacent short training samples. Preferably, the sampling window has a duration of 2L, although other durations are contemplated.

The duration of the plateau 120 depends upon the number of periods of the short training symbol that remain after antenna selection and AGC settling is complete. Therefore, the center of the plateau 120 of M_(n) is not usually the best symbol timing estimate. The right edge of the plateau 120 indicates that no more short training symbols are present. Samples that occur after the right edge of the plateau include samples from the guard interval 14 that precedes the long training symbols 16. Therefore, the right edge of the plateau 120 provides a good estimate of the symbol timing.

After packet detection and AGC settling, M_(n) is computed. M_(max) is the maximum of M_(n) and n_(max) corresponds to a time index at which M_(max) occurs. Points n₁ and n_(r) are left and right edges of the plateau 120, respectively. The points n_(l) and n_(r) are identified such that M_(nl)≈M_(nr)≈τ₁M_(max) and n_(l)<n_(max)<n_(r). In other words, n_(l) and n_(r) are the points preceding and following the maximum of M_(n) that are equal to a threshold τ₁ multiplied by M_(max). A typical value for τ₁ is 0.7. The center of the plateau 120 is estimated by the midpoints n_(c)=(n_(r)+n_(l))/2.

The carrier frequency offset Δf is estimated by: α=tan⁻¹[

(P _(nc))/

(P _(nc))] Δf=α/(2πT _(short)) which is valid if Δf|<1/(2T _(short)). For example, |Δf|<1/(2T_(short))=625 kHz for T_(short)=0.8 μs. The estimate of the carrier frequency offset Δf may be refined using a correlation of the two long training symbols after the sample timing is determined as will be described below.

In order to detect the falling edge of the plateau of M_(n), the mean absolute difference of M_(n) near the center of the plateau is computed:

$D_{K} = {\left( {1/K} \right){\sum\limits_{n = {n_{c} - {({K/2})} + 1}}^{n_{c} + {({K/2})}}{{M_{n} - M_{n - 1}}}}}$ Where K is the number of terms in the estimate of the mean absolute difference. A typical value for K is (n_(r)−n_(l))/2. The sample index n_(g) at the beginning of the guard interval 14 preceding the long training symbols 16 is estimated by detecting the right or following edge of the plateau of M_(n). In other words, n_(g) satisfies the following conditions:

n_(g) > n_(c) M_(n_(g)) < M_(n_(g) − 1) M_(n_(g)) − M_(n_(g) − 1) > τ₂D_(K) n_(g)^(′) = n_(g) − n_(Δ) A typical value for τ₂ is 10.

Since the guard interval 14 of an OFDM data symbol is longer than the channel impulse response, an additional tolerance factor is provided in the symbol timing estimate. In order to obtain a symbol timing estimate within an acceptable range, a modified symbol timing estimate n_(g)′ is generated. The modified symbol timing estimate n_(g)′ is equal to n_(g)−n_(Δ) where n_(Δ) is a small number that is less than the number of samples in the guard interval for a data symbol. For IEEE 802.11(a), the number of samples in the guard interval for a data symbol is L, which is the number of samples in a short training symbol. For example, a typical value for n_(Δ) is L/4.

The identification of the precise time that M_(n) decreases from the plateau 120 (e.g. when the short training symbols 12 end) may vary somewhat. To accommodate the possible variation, the modified symbol timing estimate n_(g)′ provides additional tolerance. With the modified symbol timing estimate n_(g)′, a sampling window begins earlier in the guard interval 14.

IEEE section 802.11(a) specifies that the transmit frequency and sample clock frequency are derived from the same reference oscillator. Therefore, the normalized carrier frequency offset and sampling period offset are approximately equal. Since carrier frequency acquisition is more simple than sampling period acquisition, sampling clock recovery is achieved using the estimate of the carrier frequency offset.

The initial carrier frequency offset estimate Δf₀ is obtained during the short timing symbols 12 in the preamble 10 of each packet as previously described above. Each complex output sample of the A/D converter 68 is adjusted using a current carrier frequency offset estimate Δf. If the original sampling period (before acquisition) is equal to T^(orig), the first update of the sampling period is: T ₀ =T ^(orig)(1−(Δf _(Δ) /f _(nominal))). Where f_(nominal) is the nominal carrier frequency. The estimate of the carrier frequency offset during the long training symbols 16 is used to obtain Δf₁=Δf₀+Δ₁. The corresponding update of the sampling period is: T ₁ =T ₀(1−(ε₁ /f _(nominal))).

During the OFDM data symbols that occur after the long training symbols 16, four subcarriers are used for pilot tones. After removing the known binary phase shift key (BPSK) modulation of the pilot tones, the main phase of the 4 pilots is determined to estimate a residual carrier frequency offset, e_(n), where n is the index of the OFDM symbol. For each OFDM symbol, the update of the carrier frequency offset and the sampling period is given by: Δf _(n) =Δf _(n−1)+βε_(n) T _(n) =T _(n−1)(1−(βε_(n) /f _(nominal))) Where β is a loop parameter. This method is currently being used with a zero order hold after IFFT in the transmitter 30 (to model D/A).

Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims. 

What is claimed is:
 1. A wireless network receiver, comprising: a carrier frequency offset circuit configured to estimate a carrier frequency offset associated with an orthogonal frequency division multiplexing (OFDM) signal received on a communication channel; a channel estimator configured to generate a first estimate of the communication channel based on the carrier frequency offset; and an update circuit configured to i) determine a correction factor to compensate for amplitude error and phase error, ii) generate an updated estimate of the communication channel using the first estimate and the correction factor, and iii) adapt, using the correction factor, the carrier frequency offset estimated by the carrier frequency offset circuit.
 2. The wireless network receiver of claim 1, wherein the correction factor includes a complex number representation of the first estimate of the communication channel.
 3. The wireless network receiver of claim 2, wherein an imaginary component of the complex number representation is used to adapt the carrier frequency offset estimated by the carrier frequency offset circuit.
 4. The wireless network receiver of claim 2, wherein the update circuit is configured to generate the correction factor based on a plurality of frequency domain signals associated with the first estimate of the communication channel.
 5. The wireless network receiver of claim 2, wherein the channel estimator is configured to generate the updated estimate of the communication channel further based on a product of i) the first estimate of the communication channel and ii) the correction factor.
 6. The wireless network receiver of claim 3, wherein the carrier frequency offset circuit is configured to adapt the carrier frequency offset estimated by the carrier frequency offset circuit by determining a product of the imaginary component and an adaptation parameter, and wherein the adaptation parameter is a predetermined constant.
 7. The wireless network receiver of claim 6, wherein the update circuit is configured to adapt the carrier frequency offset estimated by the carrier frequency offset circuit by determining a sum of i) the product of the imaginary component and the adaptation parameter, and ii) the estimated carrier frequency offset.
 8. A method of operating a wireless network receiver, the method comprising: estimating a carrier frequency offset associated with an orthogonal frequency division multiplexing (OFDM) signal received on a communication channel; generating a first estimate of the communication channel based on the carrier frequency offset; determining a correction factor to compensate for amplitude error and phase error; generating an updated estimate of the communication channel using the first estimate and the correction factor; and adapting, using the correction factor, the carrier frequency offset estimated by the carrier frequency offset circuit.
 9. The method of claim 8, wherein: the correction factor includes a complex number representation of the first estimate of the communication channel.
 10. The method of claim 9, wherein adapting the carrier frequency offset estimated by the carrier frequency offset circuit comprises using an imaginary component of the complex number representation.
 11. The method of claim 9, further comprising generating the complex number representation based on a plurality of frequency domain signals associated with the first estimate of the communication channel.
 12. The method of claim 9, further comprising generating the updated estimate further based on a product of the first estimate of the communication channel and the correction factor.
 13. The method of claim 10, wherein using the imaginary component comprises determining a product of the imaginary component and an adaptation parameter, and wherein the adaptation parameter is a predetermined constant.
 14. The method of claim 13, wherein adapting the carrier frequency offset comprises determining a sum of i) the product of the imaginary component and the adaptation parameter, and ii) the estimated carrier frequency offset. 